﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.Collections;
using DTO;
using System.Data.SqlClient;


namespace DAO
{
    public class TUYENDL_DAO
    {
        #region 1. Inserting
        public static bool ThemTuyenDuLich(TUYENDL_DTO tdl)
        {
            //int n;
            bool result = false;
            try
            {
                // Create List Sql Parameter
                List<SqlParameter> sqlParams = new List<SqlParameter>();
                sqlParams.Add(new SqlParameter("@MaTuyenDL", tdl.MaTuyenDL));
                sqlParams.Add(new SqlParameter("@TenTuyenDL", tdl.TenTuyenDL));
                sqlParams.Add(new SqlParameter("@ThanhPhoDi",tdl.ThanhPhoDi));
                sqlParams.Add(new SqlParameter("@ThanhPhoDen", tdl.ThanhPhoDen));
                // Call Store Procedure
                int n = SqlDataAccessHelper.ExecuteNoneQuery("InsertTuyenDuLich", sqlParams);
                //n = SqlDataAccessHelper.ExecuteScalar("InsertTuyenDuLich", sqlParams);
                if (n == 1)
                    result = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return result;
        }
        #endregion
        #region 2. Updating
        public static bool SuaTuyenDuLich(TUYENDL_DTO tdl)
        {
            bool result = false;
            try
            {
                // Create List Sql Parameter
                List<SqlParameter> sqlParams = new List<SqlParameter>();
                sqlParams.Add(new SqlParameter("@MaTuyenDL", tdl.MaTuyenDL));
                sqlParams.Add(new SqlParameter("@TenTuyenDL", tdl.TenTuyenDL));
                sqlParams.Add(new SqlParameter("@ThanhPhoDi", tdl.ThanhPhoDi));
                sqlParams.Add(new SqlParameter("@ThanhPhoDen", tdl.ThanhPhoDen));
                // Call Store Procedure
                int n = SqlDataAccessHelper.ExecuteNoneQuery("UpdateTuyenDuLich", sqlParams);
                if (n == 1)
                    result = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return result;
        }
        #endregion
        #region 3. Deleting
        public static bool XoaTuyenDuLich(String MaTuyenDL)
        {
            bool result = false;
            try
            {
                // Create List Sql Parameter
                List<SqlParameter> sqlParams = new List<SqlParameter>();
                sqlParams.Add(new SqlParameter("@MaTuyenDL", MaTuyenDL));
                // Call Store Procedure
                int n = SqlDataAccessHelper.ExecuteNoneQuery("DeleteTuyenDuLich", sqlParams);
                if (n == 1)
                    result = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return result;
        }
        #endregion


        public static List<TUYENDL_DTO> SelectTuyenDuLichsAll()
        {
            List<TUYENDL_DTO> list = new List<TUYENDL_DTO>();
            try
            {
                DataTable dt = SqlDataAccessHelper.ExecuteQuery("SelectTuyenDuLichesAll");
                foreach (DataRow dr in dt.Rows)
                {
                    TUYENDL_DTO tdl = new TUYENDL_DTO();
                    tdl.MaTuyenDL = int.Parse(dr["MaTuyenDL"].ToString());
                    tdl.TenTuyenDL = dr["TenTuyenDL"].ToString();
                    tdl.ThanhPhoDi=int.Parse(dr["ThanhPhoDi"].ToString());
                    tdl.ThanhPhoDen=int.Parse(dr["ThanhPhoDen"].ToString());
                    list.Add(tdl);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return list;
        }

        public static int SelectTuyenDuLichByTen(String TenTuyenDL)
        {
            int n;
            //TUYENDL_DTO tdl = new TUYENDL_DTO();
            //int MaTuyenDL;
            try
            {
                List<SqlParameter> sqlParams = new List<SqlParameter>();
                sqlParams.Add(new SqlParameter("@TenTuyenDL", TenTuyenDL));
                n = SqlDataAccessHelper.ExecuteScalar("SelectTuyenDuLichByTen", sqlParams);

                //foreach (DataRow dr in dt.Rows)
                //{
                //  tdl.MaTuyenDL = int.Parse(dr["MaTuyenDL"].ToString());
                //  tdl.TenTuyenDL = dr["TenTuyenDL"].ToString();
                //  tdl.TongHanhTrinhDi = (float)dr["TongHanhTrinhDi"];

                //return tdl;
                //ist.Add(tk);
                //MaTuyenDL = tdl.MaTuyenDL;
                // }

                // MaTuyenDL = tdl.MaTuyenDL;    
            }

            catch (Exception ex)
            {
                throw ex;
            }
            return n;
        }
        public static TUYENDL_DTO SelectTuyenDLsByAndMaTuyen(int MaTuyenDL)
        {
            TUYENDL_DTO tuyen = new TUYENDL_DTO();
            try
            {
                // Create List Sql Parameter
                List<SqlParameter> sqlParams = new List<SqlParameter>();
                sqlParams.Add(new SqlParameter("@MaTuyenDL", MaTuyenDL));

                DataTable dt = SqlDataAccessHelper.ExecuteQuery("SelectTuyenDuLichByMaTuyen", sqlParams);
                DataRow dr = dt.Rows[0];
                tuyen.MaTuyenDL = int.Parse(dr["MaTuyenDL"].ToString());
                tuyen.TenTuyenDL = dr["TenTuyenDL"].ToString();
                tuyen.ThanhPhoDi = int.Parse(dr["ThanhPhoDi"].ToString());
                tuyen.ThanhPhoDen = int.Parse(dr["ThanhPhoDi"].ToString());

            }
            catch (Exception ex)
            {
                throw ex;
            }
            return tuyen;
        }
    }

}
